'use strict';

// function add(x,y,f){
//     return f(x)+f(y);
// }
// var x=add(-5,6,Math.abs);//返回：11
// console.log(x);

// function D(x){
//     return x*x;
// }
// var arr=[1,2,3,4,5,6,7,8,9];
// var results=arr.map(D);//返回: 他们的平方：[1, 4, 9, 16, 25, 36, 49, 64, 81]
// console.log(results);//调用

// var arr=[1,2,3,4,5,6,7];
// var sum=arr.reduce(function (x,y){
//     return x+y;
// });

// console.log(sum);//返回：28

// var arr =[1,2,3,4,5,6,7,8,9];
// var r = arr.filter(function(x){
//     return x%2!==0;
// })
// console.log(r);//返回:[1, 3, 5, 7, 9]

// var arr=['A','','B', null,undefined,'C','   '];
// var r=arr.filter(function(s){
//     return s && s.trim();//trim()是去除字符串的头尾空格
// })
// console.log(r);//返回:['A', 'B', 'C']

// var arr=['A','B','C'];
// var r=arr.filter(function(element,index,self){
//     console.log(element);//依次打印‘A’，‘B’，‘C’
//     console.log(index);//依次打印0，1，2（索引）
//     console.log(self);//self就是变量arr
//     return true;
// })

// var r,
//     arr=['apple','strawberry','banana','pear','apple','orange','orange','strawberry'];
// r=arr.filter(function(element,index,self){
//     return self.indexOf(element)===index;
// });
// console.log(r.toString());//返回：apple,strawberry,banana,pear,orange

//1、利用reduce（）求积：
// var h = parseFloat(prompt('请输入长方形的高:'));
// var w = parseFloat(prompt('请输入长方形的宽:'));
// function D(x,y){
//     return x*y;
// }
// var arr=[1,2,3,4,5,6];
// var S=arr.reduce(D)
// console.log(S);//返回：720
// //测试：
//     if(S===720)
//     {
//         console.log('测试通过！');
//     }else{
//         console.log('测试失败!');
//     }

// 2、不要使用JavaScript内置的parseInt（）函数，利用map和reduce操作实现一个string2int()函数。

// var arr=['1','2','3','4','5'];
//  function D(s){ //方法一
//     return Array.prototype.map.call(s,x=>x-0).reduce((x,y)=>x*10+y)
//  }
//  function D2(s){ //方法二
//     return [].reduce.call(s,(x,y)=>x*10+y/1,0)
//  }
//  console.log(arr);//返回：['1','2','3','4','5']
//  console.log(D(arr));//返回：12345
//  console.log(D2(arr));//返回：12345

//3、请把用户输入的不规范的英文名字，变为首字母大写，其他小写的规范名字。输入：['adam','LISA','barT'],输出：['Adam','Lisa','Bart']。
/**
 * 提示： 
 转换成大写:toUpperCase()
 转换成小写:toLowerCase()
 * 
*/
// var arr =['adam','LISA','barT'];
// function D(x){
//     var inner =x.split('');
//     var r=inner.map(function(val,index){
//         var t;
//         if (index===0) {//如果索引等于0就转换成大写
//             t=val.toUpperCase();
//         }else{//否则，就转成小写
//             t=val.toLowerCase();
//         }
//         return t;
//     })
//     return r.join('');;
// }
// console.log(arr);//返回：['adam','LISA','barT']
// console.log(arr.map(D));//返回：['Adam', 'Lisa', 'Bart']

// var arr =['1','2','3']

// var arr2=new Array();//定义一个数组来装转换后的int类型
// arr2=arr.map(function(data){
//     return +data;
// })

// console.log(arr2);

// 5、练习 请尝试用filter()筛选出素数：
'use strict';
function get_primes(arr) {
    return arr.filter(function(d){
        let t=true;
        if (d===1) {
            t=false;
        }
        for(let i=2;i<d;i++){
            if (d%i===0) {
                t=false;
                return t;
            }
        }
        return t;
    });
}

// 测试:
var
    x,
    r,
    arr = [];
for (x = 1; x < 100; x++) {
    arr.push(x);
}
r = get_primes(arr);
if (r.toString() === [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97].toString()) {
    console.log('测试通过!');
} else {
    console.log('测试失败: ' + r.toString());
}

